<?php

namespace App\Models;

use Illuminate\Support\Collection;

class VoucherTemp extends Model
{
    protected $table = 'yf_voucher_template';
    protected $primaryKey = 'voucher_t_id';
    public $timestamps = false;
    protected $guarded = ['voucher_t_id'];

    /**
     * 首页版块中补齐代金券信息
     *
     * @param array $ids
     * @param int $size
     * @return Collection
     */
    public static function getOpenForumVoucher(array $ids, int $size) : Collection
    {
        return self::select(
                'voucher_t_id', 'voucher_t_title', 'voucher_t_desc', 'voucher_t_start_date', 'voucher_t_end_date', 'voucher_t_price',
                'voucher_t_limit', 'voucher_t_total', 'voucher_t_used', 'voucher_t_points', 'voucher_t_giveout', 'shop_name', 'voucher_t_customimg'
            )
            ->addSelect(\DB::raw('CONCAT(IF(voucher_t_total>0, ROUND(voucher_t_giveout*100/voucher_t_total), 0), "%") as voucher_t_usedper'))
            ->where([
                ['voucher_t_end_date', '>', now()->toDateTimeString()],
                ['voucher_t_state', '=', 1]
            ])
            ->whereRaw('`voucher_t_total`>`voucher_t_giveout`')
            ->when($ids, function ($query) use ($ids) {
                return $query->whereNotIn('voucher_t_id', $ids);
            })
            ->latest('voucher_t_id')
            ->limit($size)
            ->get();
    }

    public static function getEnableVouchers() : Collection
    {
        $now = now()->toDateTimeString();
        return self::where([
                ['voucher_t_state', '=', 1],
                ['voucher_t_start_date', '<=', $now],
                ['voucher_t_end_date', '>=', $now]
            ])
            ->get();
    }
}
